package com.denlaku.longan.dao;

import com.denlaku.longan.anno.VarOp;
import com.denlaku.longan.vo.Tenant;

import java.util.List;

/**
 * 租户DAO
 *
 * @author tianx
 */
public interface TenantDao {
	/**
	 * 查询租户
	 *
	 * @param tenant 查询参数
	 * @return 租户列表
	 */
	List<Tenant> list(Tenant tenant);

	/**
	 * 查询租户列表
	 *
	 * @param userId 用户ID
	 * @return 租户列表
	 */
	List<Tenant> ownedList(Long userId);

	/**
	 * 根据id获取租户
	 *
	 * @param id 租户id
	 * @return 租户
	 */
	Tenant get(Long id);

	/**
	 * 新增租户
	 *
	 * @param tenant 租户
	 */
	@VarOp
	void add(Tenant tenant);

	/**
	 * 更新租户
	 *
	 * @param tenant 租户
	 */
	@VarOp
	void update(Tenant tenant);

	/**
	 * 删除租户
	 *
	 * @param id 租户id
	 */
	void delete(Long id);

	/**
	 * 禁用租户
	 *
	 * @param tenant 租户
	 */
	@VarOp
	void disabled(Tenant tenant);

	/**
	 * 启用租户
	 *
	 * @param tenant 租户
	 */
	@VarOp
	void enabled(Tenant tenant);

}
